//
//  RBStringSize.m
//  RiceBasket
//
//  Created by DwZeng on 2021/1/15.
//

#import "RBStringSize.h"

@implementation RBStringSize
/**
 *  计算字体的高度
 *
 *  @param text 文字的内容
 *  @param size 文字的位置
 *  @param font 字体的大小
 *
 *  @return CGSize
 */
+ (CGSize)initWihtText:(NSString *)text boundingRectWithSize:(CGSize)size font:(CGFloat)font
{
    CGSize stringSize = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:font]} context:nil].size;
    
    return stringSize;
}
/**
 *  计算字体的高度
 *
 *  @param text 文字的内容
 *  @param size 文字的位置
 *  @param font 字体的大小
 *
 *  @return CGSize
 *
 *  该方法已经被弃用了
 */
+ (CGSize)text:(NSString *)text constrainedToSize:(CGSize)size font:(CGFloat)font
{
    CGSize stringSize = [text sizeWithFont:[UIFont systemFontOfSize:font] constrainedToSize:size];
    
    return stringSize;
}

/**
 *  计算字体的高度
 *
 *  @param text 文字的内容
 *  @param size 文字的位置
 *  @param font 字体的大小
 *
 *  @return CGSize
 */
+ (CGSize)initWihtText:(NSString *)text boundingRectWithSize:(CGSize)size StringFont:(UIFont *)font{
    CGSize stringSize = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : font} context:nil].size;
    return stringSize;
}



/**
 计算富文本字体高度

 @param content 内容
 @param size size
 @param font 字号
 @return CGSize
 */
+ (CGSize)hideLabelLayoutHeight:(NSString *)content boundingRectWithSize:(CGSize)size withTextFont:(UIFont *)font{

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

    paragraphStyle.lineSpacing = 3;  // 段落高度

    NSMutableAttributedString *attributes = [[NSMutableAttributedString alloc] initWithString:content];

    [attributes addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, content.length)];
    [attributes addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, content.length)];

    CGSize attSize = [attributes boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;

    return attSize;
}



/**
计算富文本字体的高度

 @param attributes 富文本
 *  @param size 文字的位置
 *
 *  @return CGSize
 */
+ (CGSize)hideLabelLayoutHeight:(NSMutableAttributedString *)attributes boundingRectWithSize:(CGSize)size{
        
    CGSize attSize = [attributes boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;
    
    return attSize;
}



/**
 计算文字的宽度的方法

 @param str 字符串
 @param font 字体
 @return 宽度
 */
+ (CGFloat)calculateString:(NSString *)str Width:(UIFont *)font
{
    CGSize size = [str boundingRectWithSize:CGSizeMake(SCREEN_WIDTH, 100000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : font} context:nil].size;
    return size.width;
}

@end
